#pragma once

#include "C_Rect.h"
#include "C_Sprite.h"
#include "C_TextureManager.h"
#include "C_FSM.h"
#include "VC_GameState.h"

class C_Game
{
private:
	///////////////////////////////////////////////////////////////////////////////////////
	///////////////	WINDOWS 
	sf::RenderWindow *m_window;
	///////////////////////////////////////////////////////////////////////////////////////
	///////////////	WINDOW SIZE
	UINT32 m_width;
	UINT32 m_height;


	///////////////////////////////////////////////////////////////////////////////////////
	///////////////	MANAGERS
	C_TextureManager m_TextureMngr;

	C_Sprite m_cursor;
	C_FSM m_fsm;
public:
	C_Game();
	~C_Game();

	///////////////////////////////////////////////////////////////////////////////////////
	///////////////	OPENGL INITIALIZATION
	void initGL();

	///////////////////////////////////////////////////////////////////////////////////////
	///////////////	EXECUTION FUNCTION
	int exec();

	///////////////////////////////////////////////////////////////////////////////////////
	///////////////	MAIN FUNCTIONS
	void handleEvent();
	void update();
	void render();
};

